#pragma once
#include <glad/glad.h>
#include<string>
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>
using namespace std;
class Shader
{
public:
    Shader();
    string vertexString;
	string fragString;
	const char* vertexSource;
	const char* fragSource;
	unsigned int ID;
	void SetUniform3f(unsigned int shaderId, const char* nameString, glm::vec3 param);
	void SetUniform1f(unsigned int shaderId, const char* nameString, float param);
	void SetUniform1i(unsigned int shaderId, const char* nameString, unsigned int slot);
	unsigned int loadShader(string vertexPath, string fragPath);
    void loadTexture(GLenum glenum, GLint color, const char *imagePath);
private:
	void chechError(unsigned int ID, std::string type);
};

